home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / VS_804.ARJ / MAINTSRC.EXE / E_DICTNT.PRG < prev    next >
Text File  |  1991-11-25  |  7KB  |  246 lines

  1. * Filename.......: E_DICTNT.PRG
  2. *                  
  3. * Author.........: Vernon E. Six, Jr.
  4. *                  
  5. * Last Update....: Mon  11/25/91  16:37:18
  6. *                  
  7. * Created using..: VSG - Vern Six's Get System v1.00.53a
  8. *                  
  9. * Notice.........: CopyRight (c) 1991 by Vernon E. Six, Jr.
  10. *                  All Rights Reserved World Wide!         
  11.  
  12. #include "INKEY.CH"  
  13. #include "SETCURS.CH"
  14.  
  15. #include "_DICTNTX.CH"
  16. #include "_DICTHDR.CH"
  17.  
  18.  
  19. FUNCTION E_DICTNTX(pl_Update,pc_Mode)
  20. *══════════════════════════════════════════════════════════*
  21. * Edit the current record in _DICTNTX.DBF                  *
  22. *══════════════════════════════════════════════════════════*
  23. LOCAL getlist    := {}   
  24. LOCAL GetObj             
  25. LOCAL l_EatKeys  := .F.  
  26. LOCAL a_Say      := {}   
  27. LOCAL a_Get      := {}   
  28. LOCAL n_Cntr             
  29. LOCAL c_OldHelp          
  30. LOCAL n_Correct  := 1
  31.  
  32. *══ Make an assumption ═══════════════════════════════════*
  33.  
  34. pc_Mode = IF(pc_Mode=NIL,"EDIT",UPPER(pc_Mode))
  35.  
  36. *═════════════════════════════════════════════════════════*
  37.  
  38. _DICTNTX->( VS_SetOrder("1") )
  39.  
  40. AADD( a_Say, _DICTHDR->DBF_NAME                            )
  41. AADD( a_Say, _DICTHDR->DESC                                )
  42.  
  43. AADD( a_Get, IF(pl_Update, _DICTNTX->NTX_NAME    , _DEF__DICTNTX_NTX_NAME     ))
  44. AADD( a_Get, IF(pl_Update, _DICTNTX->ORDER       , _DEF__DICTNTX_ORDER        ))
  45. AADD( a_Get, IF(pl_Update, _DICTNTX->TYPE        , _DEF__DICTNTX_TYPE         ))
  46. AADD( a_Get, IF(pl_Update, _DICTNTX->KEY         , _DEF__DICTNTX_KEY          ))
  47.  
  48.  
  49.    VS_GRABSCR()
  50.  
  51.       VS_PALETTE(4)
  52.  
  53.       VS_Text(2,"",PADC("Working...",40),"")
  54.  
  55.       DispBegin()
  56.  
  57.       VS_EndText()
  58.  
  59.       IF pc_Mode = "DISPLAY"
  60.          VS_WIND(05,05,16,74," Index Information "," Press Any Key To Continue ")
  61.        ELSE
  62.          VS_WIND(05,05,16,74," Index Information "," Press <F1> For Help ")
  63.       ENDIF
  64.  
  65.  
  66.       @ 08,07,08,72 BOX "┌─┐│┘─└│ "
  67.  
  68.       @ 09,07 SAY "Index FileName:"
  69.       @ 10,16 SAY "Order:"
  70.       @ 11,17 SAY "Type:"
  71.       @ 13,07 SAY "Key..."
  72.       @ 07,07 SAY "Database:"
  73.       @ 07,27 SAY "Desc:"
  74.  
  75.       SETCOLOR(VS_WindUns())
  76.  
  77.       @ 07,17 SAY a_Say[001]  PICTURE _PIC__DICTHDR_DBF_NAME
  78.       @ 07,33 SAY a_Say[002]  PICTURE _PIC__DICTHDR_DESC
  79.  
  80.       VS_WndColr()
  81.  
  82.  
  83.       *══════════════════════════════════════════════════════════*
  84.  
  85.       GetObj           := GetNew( 09,23, ;
  86.                           {|x| IF(x==NIL,a_Get[001], a_Get[001]:=x)},;
  87.                           "a_Get[001]", ;
  88.                           _PIC__DICTNTX_NTX_NAME )
  89.  
  90.       GetObj:cargo  := {"_DICTNTX","NTX_NAME"} 
  91.  
  92.       GetObj:postBlock := { || VS_EatKeys(@l_EatKeys)  } 
  93.  
  94.       AADD( getlist, GetObj )
  95.  
  96.       GetObj:Display()
  97.  
  98.  
  99.       *══════════════════════════════════════════════════════════*
  100.  
  101.       GetObj           := GetNew( 10,23, ;
  102.                           {|x| IF(x==NIL,a_Get[002], a_Get[002]:=x)},;
  103.                           "a_Get[002]", ;
  104.                           _PIC__DICTNTX_ORDER )
  105.  
  106.       GetObj:cargo  := {"_DICTNTX","ORDER"} 
  107.  
  108.       GetObj:postBlock := { || VS_EatKeys(@l_EatKeys)  } 
  109.  
  110.       AADD( getlist, GetObj )
  111.  
  112.       GetObj:Display()
  113.  
  114.  
  115.       *══════════════════════════════════════════════════════════*
  116.  
  117.       GetObj           := GetNew( 11,23, ;
  118.                           {|x| IF(x==NIL,a_Get[003], a_Get[003]:=x)},;
  119.                           "a_Get[003]", ;
  120.                           _PIC__DICTNTX_TYPE )
  121.  
  122.       GetObj:cargo  := {"_DICTNTX","TYPE"} 
  123.  
  124.       GetObj:postBlock := { || VS_EatKeys(@l_EatKeys)  } 
  125.  
  126.       AADD( getlist, GetObj )
  127.  
  128.       GetObj:Display()
  129.  
  130.  
  131.       *══════════════════════════════════════════════════════════*
  132.  
  133.       GetObj           := GetNew( 14,09, ;
  134.                           {|x| IF(x==NIL,a_Get[004], a_Get[004]:=x)},;
  135.                           "a_Get[004]", ;
  136.                           _PIC__DICTNTX_KEY )
  137.  
  138.       GetObj:cargo  := {"_DICTNTX","KEY"} 
  139.  
  140.       GetObj:postBlock := { || VS_EatKeys(@l_EatKeys)  } 
  141.  
  142.       AADD( getlist, GetObj )
  143.  
  144.       GetObj:Display()
  145.  
  146.  
  147.       *══════════════════════════════════════════════════════════*
  148.  
  149.       SETCURSOR(SC_NORMAL)
  150.       DispEnd()
  151.  
  152.       *══════════════════════════════════════════════════════════*
  153.       * Do all the pre-validations                               *
  154.       *══════════════════════════════════════════════════════════*
  155.       IF pl_Update .OR. pc_Mode="DISPLAY"
  156.       ENDIF
  157.  
  158.  
  159.  
  160.       IF pc_Mode = "DISPLAY"
  161.  
  162.          CLEAR GETS
  163.          SETCURSOR(SC_NONE) 
  164.          VS_INKEY(0)
  165.  
  166.        ELSE
  167.  
  168.          DO WHILE .T.           
  169.  
  170.             l_EatKeys := .F.    
  171.             c_OldHelp = VS_HelpPrg("E_DICTNTX ")
  172.             ReadModal(getlist)  
  173.             VS_HelpPrg(c_OldHelp)
  174.             CLEAR TYPEAHEAD     
  175.  
  176.             IF LASTKEY() = K_ESC
  177.                EXIT             
  178.             ENDIF               
  179.  
  180.             n_Correct = VS_Correct()
  181.  
  182.             DO CASE                 
  183.                CASE n_Correct = 3   
  184.                   VS_PutScr()       
  185.                   RETURN(NIL)       
  186.                CASE n_Correct = 2   
  187.                   LOOP              
  188.             ENDCASE                 
  189.  
  190.             EXIT
  191.  
  192.          ENDDO
  193.  
  194.       ENDIF
  195.  
  196.    VS_PutScr()
  197.  
  198.    CLEAR TYPEAHEAD
  199.  
  200.    IF LASTKEY() = K_ESC .OR. pc_Mode = "DISPLAY"
  201.       RETURN(NIL)
  202.    ENDIF
  203.  
  204.  
  205.    BEGIN SEQUENCE
  206.  
  207.       IF .NOT. pl_Update
  208.  
  209.          IF .NOT. _DICTNTX->(VS_AddRec())
  210.             BREAK
  211.           ELSE
  212.             REPLACE _DICTNTX->DBF_NAME       WITH _DEF__DICTNTX_DBF_NAME
  213.             REPLACE _DICTNTX->ORDER          WITH _DEF__DICTNTX_ORDER
  214.             REPLACE _DICTNTX->NTX_NAME       WITH _DEF__DICTNTX_NTX_NAME
  215.             REPLACE _DICTNTX->TYPE           WITH _DEF__DICTNTX_TYPE
  216.             REPLACE _DICTNTX->KEY            WITH _DEF__DICTNTX_KEY
  217.          ENDIF
  218.  
  219.        ELSE
  220.  
  221.          IF .NOT. _DICTNTX->(VS_RLOCK())
  222.             BREAK
  223.          ENDIF
  224.  
  225.       ENDIF
  226.  
  227.       REPLACE _DICTNTX->NTX_NAME            WITH a_Get[001]
  228.       REPLACE _DICTNTX->ORDER               WITH a_Get[002]
  229.       REPLACE _DICTNTX->TYPE                WITH a_Get[003]
  230.       REPLACE _DICTNTX->KEY                 WITH a_Get[004]
  231.  
  232.       *══════════════════════════════════════════════════════════*
  233.       * Call the optional program specified by the programmer    *
  234.       *══════════════════════════════════════════════════════════*
  235.       REPLACE _DICTNTX->DBF_NAME WITH _DICTHDR->DBF_NAME
  236.  
  237.  
  238.       _DICTNTX->( dbUnlock() )
  239.  
  240.    END SEQUENCE
  241.  
  242. RETURN(NIL)
  243. *══ EOF: E_DICTNTX() ═════════════════════════════════════════════════════════*
  244.  
  245.  
  246.